﻿using System;
using System.Collections.Generic;
using System.Text;

using System.Data;

namespace Tony.Oracle
{
	public class TableStructureComponent
	{
		private TableStructureDB clsData = new TableStructureDB();

		public TableStructureComponent()
		{
		}

		public List<TableStructure> GetTableStructure(string strTableName)
		{
			List<TableStructure> list = new List<TableStructure>();
			DataTable dt;

			dt = clsData.GetStructure(strTableName);
			foreach (DataRow dr in dt.Rows)
			{
				TableStructure clsEntity = new TableStructure();

				clsEntity.strName = dr[0].ToString();
				clsEntity.strType = dr[1].ToString();
				clsEntity.nLength = Convert.ToInt32(dr[2]);
				if (IsNeedCheckLength(clsEntity))
				{
					clsEntity.bCheckLength = true;
				}
				else
				{
					clsEntity.bCheckLength = false;
				}

				list.Add(clsEntity);
			}

			return list;
		}

		#region 检查一个字段是否需要检查操作的长度
		/// <summary>
		/// 检查一个字段是否需要检查操作的长度
		/// </summary>
		/*******************************************************************
		 * * 功    能：	检查一个字段是否需要检查操作的长度
		 * * 参    数：
		 * * 返 回 值：
		 * * 作    者： Tony Mucor
		 * * 创建日期： 2013-9-9 18:11:57
		 * *******************************************************************/
		private Boolean IsNeedCheckLength(TableStructure clsEntity)
		{
			if (clsEntity.strType == "char" || clsEntity.strType == "VARCHAR2" || clsEntity.strType == "VARCHAR")
			{
				return true;
			}
			else
			{
				return false;
			}
		}
		#endregion
	}
}
